///******************** NG.Respate(C)  **********************************
//* 产品名称: Respate 科技
//* 文件名称: signal.c
//* 程序作者: 雷帕特公司(南宫子萍)
//* 程序版本: V1.1														   
//* 编制日期: 2019/1/29
//* 功能描述: 系统日志
//* QQ:	2085827949
//**********************************************************************/

#include "manager.h"
#include "lcd.h"
#include <pthread.h>

int lcd_fd = -1;
int* lcd_p = NULL;
int touch_fd =-1;   //触摸屏fd
int inputChose =-1; //按键的触摸选择

void exitSystem(void)
{
     system("clear");
     printf("系统退出中ing....!\r\n");
     //show_bmp(lcd_p,"./bmp/logout.bmp",0,0,800,480);
    sleep(3);
    lcd_clear(lcd_p,BLACK);
    system("clear");
    printf("你已退出系统，感谢你的使用!\r\n");
    exit(0);
}

//获取屏幕输入
int getInput(void)
{
    struct input_event inputBuff={0};
    int abs_x = 0;
    int abs_y = 0;

    while(1)
    {
        
        read(touch_fd,&inputBuff,sizeof(struct input_event));
        //保存手离开屏幕时x坐标
        if(inputBuff.type == EV_ABS && inputBuff.code == ABS_X)
        {
            
            abs_x = inputBuff.value;
            //printf("abs_x:%d\r\n",abs_x);
        }
        //保存手离开屏幕时y坐标
        if(inputBuff.type == EV_ABS && inputBuff.code == ABS_Y)
        {
            abs_y = inputBuff.value; 
            //printf("abs_y:%d\r\n",abs_y);
        }
        
        //一旦手松开
        if(inputBuff.type == EV_KEY && inputBuff.code == BTN_TOUCH && inputBuff.value == 0)    //value为1，代表按下，value为0代表抬起。
        {
            if(abs_x>260&&abs_x<520)
            {
                if(abs_y>70&&abs_y<120)        return 1;
                else if(abs_y>190&&abs_y<250)  return 2;
                else if(abs_y>320&&abs_y<400)  return 3;
                //printf("exit thread :%d\r\n",inputChose);
            }
            abs_y = 0;
            abs_x = 0;
        }
    }
} 


void Lap_LogUi(void)
{
    // int i=0;
    // while (inputChose<=0)
    // {
        printf("==================login=====================\r\n");
        printf("                1.  注册                    \r\n");
        printf("                2.  用户登录             \r\n");
        printf("                3.  退出                     \r\n");
        printf("============================================\r\n");
        // printf("请输入选择:\n");
    //     i=getchar();
    //     if(i>'0'&&i<'9') inputChose = i-'0';
    // }
    
}

/*********************************************************************************
** 函数名称: laplap_tread_2unblock
** 功能描述: 
** 输入参数:         
** 输出参数: None.
** 返回参数: return .
**********************************************************************************/
int starUI(void)
{
    char buff[10]={0};
    //show_bmp(lcd_p,"./bmp/log_in.bmp",0,0,800,480);
    Lap_LogUi();  // 显示登陆界面
    getScanf("请选择:",buff,1);
    switch (buff[0]-'0')
    {
    case 1: 
            //show_bmp(lcd_p,"./bmp/using.bmp",0,0,800,480);
            if(!registerUser()){ printf("注册成功\r\n"); sleep(1); mainUiI();}
            else    printf("注册失败！\r\n");
        break;
    
    case 2: 
            //show_bmp(lcd_p,"./bmp/using.bmp",0,0,800,480);
            if(!logUser())  mainUiI();
            else    printf("登录失败！\r\n");           
        break;
    
    case 3: 
           exitSystem();
        break;
    
    default:
        return -1;
        break;
    }
    return 0;
}


/*********************************************************************************
** 函数名称: lcd_int
** 功能描述: 屏幕初始化
** 输入参数:         
** 输出参数: None.
** 返回参数: return .
**********************************************************************************/
void lcd_int(void)
{
    lcd_fd=lcd_open(&lcd_p);
    lcd_clear(lcd_p,BLUE);
    touch_fd = open("/dev/input/event0",O_RDONLY);      /*打开触摸屏设备*/
    if(-1 == touch_fd){
        perror("open");
        return -1;
    } 
}

void mangerTest(void)
{
    int time =2;
    system("clear");
    // lcd_int();
    // show_bmp(lcd_p,"./bmp/start.bmp",0,0,800,480);

    printf("系统启动中ing.....\r\n");
    printf("剩余时间:5");
    while (time--) 
    {
        printf("\b%d",time);
        fflush(stdout);
        sleep(1);
        
    }
    printf("\n系统启动成功....\r\n");
    sleep(1);
   
    while (1)
    {
        fflush(stdout);
        system("clear");
        if(!starUI()) sleep(1);
    }
}


																						 
